<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui"
                template="/template.xhtml">


    <ui:define name="title">
        <h:outputText value="#{myBundle.AppName}"></h:outputText>
    </ui:define>
    <ui:define name="body" >

        <h:form>
            <p:accordionPanel style="width: 70%;margin:0 auto;" activeIndex="-1">
                <p:tab title="Filtros de Busqueda">
                    <p:panelGrid id="pgnuevo" style="margin:0 auto;">
                        <p:row>
                            <p:column styleClass="tdlavel"><h:outputText value="Fecha de Registro:" /></p:column>
                            <p:column><p:calendar id="ffecha" value="#{publicacionHistorialMB.fechReg}" 
                                                  navigator="true" pattern="dd/MM/yyyy" timeZone="America/El_Salvador" 
                                                  locale="es" yearRange="c-1:c-0">
                                </p:calendar>
                            </p:column>
                            <p:column styleClass="tdlavel" style="width: 20%"><h:outputText value="Estado de Publicación:"/></p:column>
                            <p:column>
                                <p:selectOneMenu id="farea" value="#{publicacionHistorialMB.estadoPublicacionFiltro}" converter="estadoPublicacionConverter">
                                    <f:selectItem itemLabel="Publicaciones con cualquier estado" value="#{null}"/>
                                    <f:selectItems value="#{estadoPublicacionController.getLestadoPublicacion()}"
                                                   var="idEstadoPublicacionItem"
                                                   itemValue="#{idEstadoPublicacionItem}"
                                                   itemLabel="#{idEstadoPublicacionItem.nombre}"/>
                                </p:selectOneMenu>                                                         
                            </p:column>
                        </p:row>
                        <p:row>
                            <p:column colspan="4" style="text-align: center">
                                <p:commandButton 
                                    id="regPubl"
                                    ajax="true"
                                    actionListener="#{publicacionHistorialMB.inicio()}"
                                    value="Generar Busqueda" 
                                    update=":frmdetpubli:datatable"
                                    title="Generar Busqueda"/>                                    
                            </p:column>                                
                        </p:row>                                
                    </p:panelGrid>                        
                </p:tab>
            </p:accordionPanel><br/>
        </h:form>    


        <h:form id="frmdetpubli">
            

            <p:dataTable id="datatable" style="width: 70%;margin:0 auto;"
                         var="publi" 
                         emptyMessage="No hay Resultados en la Busqueda" 
                         value="#{publicacionController.lPublicacion(usuarioSesionMB.empresa.idEmpresa)}">
                <p:column headerText="Area de la Plaza" filterBy="#{publi.idTipoCargo.idAreaEmpresa.nombre}" filterMatchMode="contains" style="white-space:pre-line;">  
                    <h:outputText value="#{publi.idTipoCargo.idAreaEmpresa.nombre}"/>  
                </p:column>   
                <p:column headerText="Cargo de la Plaza" filterBy="#{publi.idTipoCargo.nombre}" filterMatchMode="contains" style="white-space:pre-line;">  
                    <h:outputText value="#{publi.idTipoCargo.nombre}"/>  
                </p:column>                   
                <p:column headerText="Descripción de Publicación" style="white-space:pre-line;">  
                    <h:outputText value="#{publi.descripcion}"/>  
                </p:column>     
                <p:column headerText="Fecha de Limite" filterBy="#{publi.fechaFin}" filterMatchMode="contains" style="white-space:pre-line;text-align: center">  
                    <h:outputText value="#{publi.fechaFin}">
                        <f:convertDateTime type="date" pattern="dd-MM-yyyy"/>
                    </h:outputText>                      
                </p:column> 
                <p:column headerText="Estado" style="white-space:pre-line;">  
                    <h:outputText value="#{publi.idEstadoPublicacion.nombre}"/>  
                </p:column>                
                <p:column style="width:15%; text-align: center" headerText="Opciones">  
                    <p:commandButton update=":formDespliegue:dlgDespliegue"
                                     actionListener="#{publicacionHistorialMB.PreparaVer(publi)}"
                                     icon="ui-icon-search"
                                     oncomplete="dlgDespliegue.show();"/>   
                    <p:commandButton update=":formUpPub:dlgUpPub"
                                     actionListener="#{publicacionHistorialMB.PrepararEditar(publi)}"
                                     icon="ui-icon-pencil"
                                     oncomplete="dlgUpPub.show();"/>  
                    <p:commandButton update="datatable"
                                     ajax="true"
                                     actionListener="#{publicacionHistorialMB.CambioEstado(publi)}"
                                     icon="#{publicacionHistorialMB.TipoIcono(publi.idEstadoPublicacion.idEstadoPublicacion)}"
                                     title="#{publicacionHistorialMB.TipoMensaje(publi.idEstadoPublicacion.idEstadoPublicacion)}"/>                    
                </p:column>                
            </p:dataTable>

            <br/>

        </h:form>
    </ui:define>            


    <ui:define name="dialog" >        
        <h:form id="formDespliegue">
            <p:dialog header="Información de Publicación" widgetVar="dlgDespliegue" resizable="false" id="dlgDespliegue" width="50%" modal="true" appendToBody="true">
                <p:panelGrid id="pgnuevo" style="width: 100%;margin:0 auto;">
                    <p:row>
                        <p:column styleClass="tdlavel" style="width: 18%;"><h:outputText value="Area de Plaza:"/></p:column>
                        <p:column colspan="5"><h:outputText value="#{publicacionHistorialMB.publicacion.idTipoCargo.idAreaEmpresa.nombre}"/></p:column>
                    </p:row>                  
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputText value="Tipo de Cargo:"/></p:column>
                        <p:column colspan="5"><h:outputText value="#{publicacionHistorialMB.publicacion.idTipoCargo.nombre}"/></p:column>
                    </p:row>                                          
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputText value="Descrición:"/></p:column>
                        <p:column colspan="5"><h:outputText value="#{publicacionHistorialMB.publicacion.descripcion}" style="white-space:pre-line;"/></p:column>                                 
                    </p:row>
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputText value="Pais:"/></p:column>
                        <p:column colspan="5"><h:outputText value="#{publicacionHistorialMB.publicacion.idPais.nombre}"/></p:column>
                    </p:row>                                  
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputText value="Contratación:"/></p:column>
                        <p:column colspan="5"><h:outputText value="#{publicacionHistorialMB.publicacion.idTipoContratacion.nombre}"/></p:column>
                    </p:row>                
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputText value="Fecha limite:"/></p:column>
                        <p:column colspan="5"><h:outputText value="#{publicacionHistorialMB.publicacion.fechaFin}"/></p:column>
                    </p:row>                                        
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputLabel value="Años de Experiencia:"/></p:column>  
                        <p:column><h:outputText value="#{publicacionHistorialMB.publicacion.anioExperiencia}"/></p:column>                                                 
                        <p:column styleClass="tdlavel"><h:outputLabel value="Vacantes:"/></p:column>  
                        <p:column><h:outputText value="#{publicacionHistorialMB.publicacion.puestosVacantes}"/></p:column>                     
                        <p:column styleClass="tdlavel"><h:outputText value="Genero:"/></p:column>
                        <p:column><h:outputText value="#{publicacionHistorialMB.publicacion.genero}"/></p:column>                                        
                    </p:row>
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputLabel value="Edad Minima:"/></p:column>  
                        <p:column><h:outputText value="#{publicacionHistorialMB.publicacion.edadInicio}"/></p:column>  
                        <p:column styleClass="tdlavel"><h:outputLabel value="Edad Maxima:"/></p:column>  
                        <p:column><h:outputText value="#{publicacionHistorialMB.publicacion.edadFin}"/></p:column>  
                    </p:row> 
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputLabel value="Salario Desde:"/></p:column>  
                        <p:column><h:outputText value="#{publicacionHistorialMB.publicacion.salarioDesde}"/></p:column>  
                        <p:column styleClass="tdlavel"><h:outputLabel value="Salario Hasta:"/></p:column>  
                        <p:column><h:outputText value="#{publicacionHistorialMB.publicacion.salarioHasta}"/></p:column>  
                    </p:row>                         
                </p:panelGrid>               
                <br/>
                <h3>Requerimientos:</h3>                                  
                <div style="width:580px; height: 200px; overflow-y: scroll;">
                <p:dataList value="#{publicacionHistorialMB.publicacion.detallePublicacionList}" var="dpub" type="ordered" >  
                    <h:outputText value="#{dpub.descripcion}" escape="false"/>
                </p:dataList>                               
                </div>
            </p:dialog>    
        </h:form>       




        <h:form id="formUpPub">
            <p:dialog header="Información de Publicación" widgetVar="dlgUpPub" resizable="false" id="dlgUpPub" height="450" width="750" modal="true">                
                <p:panelGrid id="pgnuevo" style="margin:0 auto;">
                    <p:row>
                        <p:column styleClass="tdlavel" style="width: 20%"><h:outputText value="Area de Empresa:*"/></p:column>
                        <p:column colspan="5">
                            <p:selectOneMenu id="rarea" value="#{publicacionHistorialMB.areaEmpresa}" required="true" requiredMessage="Area Obligatoria" converter="areaEmpresaConverter">
                                <f:selectItem itemLabel="Elija una Area"/>
                                <f:selectItems value="#{areaEmpresaController.getlAreaEmpresa()}"
                                               var="idAreaEmpresaItem"
                                               itemValue="#{idAreaEmpresaItem}"
                                               itemLabel="#{idAreaEmpresaItem.nombre}"/>
                                <p:ajax update="mrarea"/>
                                <p:ajax event="change" update="rtipop"/>
                            </p:selectOneMenu>                                                         
                        </p:column>
                    </p:row>
                    <p:row>
                        <p:column></p:column>
                        <p:column styleClass="tdmensaje" colspan="5"><h:message id="mrarea" for="rarea"/></p:column>
                    </p:row>                  
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputText value="Tipo de Cargo:*"/></p:column>
                        <p:column colspan="5">
                            <p:selectOneMenu id="rtipop" value="#{publicacionHistorialMB.publicacion.idTipoCargo}" required="true" requiredMessage="Area Obligatoria" converter="tipoCargoConverter">
                                <f:selectItem itemLabel="Elija una Area"/>
                                <f:selectItems value="#{tipoCargoController.getLtipoCargo(publicacionHistorialMB.areaEmpresa)}"
                                               var="idTipoCargoItem"
                                               itemValue="#{idTipoCargoItem}"
                                               itemLabel="#{idTipoCargoItem.nombre}"/>
                                <p:ajax update="mrtipop"/>
                            </p:selectOneMenu>                                                         
                        </p:column>
                    </p:row>
                    <p:row>
                        <p:column></p:column>
                        <p:column styleClass="tdmensaje" colspan="5"><h:message id="mrtipop" for="rtipop"/></p:column>
                    </p:row> 
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputText value="Descrición:*"/></p:column>
                        <p:column colspan="5"><p:inputTextarea id="rdescrip" cols="80" value="#{publicacionHistorialMB.publicacion.descripcion}" 
                                                               required="true" requiredMessage="Descripción Obligatoria"
                                                               counter="counter" maxlength="255" counterTemplate="{0} Caracteres disponibles de 255">
                                <p:ajax event="blur" update="mrdescrip"/>
                            </p:inputTextarea>
                            <br/><h:outputText id="counter"/>
                        </p:column>
                    </p:row>
                    <p:row>
                        <p:column></p:column>
                        <p:column styleClass="tdmensaje" colspan="5"><h:message id="mrdescrip" for="rdescrip"/></p:column>
                    </p:row>                                    
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputText value="Pais:*"/></p:column>
                        <p:column colspan="5">
                            <p:selectOneMenu id="rpais" value="#{publicacionHistorialMB.publicacion.idPais}" required="true" requiredMessage="País Obligatorio" converter="paisConverter">
                                <f:selectItem itemLabel="Seleccione un Pais"/>
                                <f:selectItems value="#{paisController.getlPais()}"
                                               var="idPaisItem"
                                               itemValue="#{idPaisItem}"
                                               itemLabel="#{idPaisItem.nombre}"/>
                                <p:ajax update="mrpais"/>                            
                            </p:selectOneMenu>                                                         
                        </p:column>
                    </p:row> 
                    <p:row>
                        <p:column></p:column>
                        <p:column styleClass="tdmensaje" colspan="5"><h:message id="mrpais" for="rpais"/></p:column>
                    </p:row>                                          
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputText value="Contratación:*"/></p:column>
                        <p:column colspan="5">
                            <p:selectOneMenu id="rtipoc" value="#{publicacionHistorialMB.publicacion.idTipoContratacion}" required="true" requiredMessage="Tipo de Contratación Obligatoria" converter="tipoContratacionConverter">
                                <f:selectItem itemLabel="Seleccione tipo de Contración"/>
                                <f:selectItems value="#{tipoContratacionController.getlTipoContratacion()}"
                                               var="idTipoContratacionItem"
                                               itemValue="#{idTipoContratacionItem}"
                                               itemLabel="#{idTipoContratacionItem.nombre}"/>
                                <p:ajax update="mrtipoc"/>                            
                            </p:selectOneMenu>                                                         
                        </p:column>
                    </p:row>                                                  
                    <p:row>
                        <p:column></p:column>
                        <p:column colspan="5"><h:message id="mrtipoc" for="rtipoc"/></p:column>                                      
                    </p:row>

                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputText value="Fecha de Expiración:*" /></p:column>
                        <p:column><p:calendar id="rfechaf" value="#{publicacionHistorialMB.publicacion.fechaFin}" 
                                              navigator="true" required="true" requiredMessage="Fecha Obligatoria" 
                                              pattern="dd/MM/yyyy" timeZone="America/El_Salvador" locale="es" yearRange="y-0:y+1">
                                <p:ajax event="dateSelect" update="mrfechaf"/>
                            </p:calendar>
                        </p:column>
                    </p:row>
                    <p:row>
                        <p:column></p:column>
                        <p:column styleClass="tdmensaje"><h:message id="mrfechaf" for="rfechaf"/></p:column>
                    </p:row>

                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputLabel value="Experiencia: "/></p:column>  
                        <p:column><p:spinner value="#{publicacionHistorialMB.publicacion.anioExperiencia}" min="0" max="100" size="3"/>(Años)</p:column>                     
                        <p:column styleClass="tdlavel"><h:outputLabel value="Vacantes: "/></p:column>  
                        <p:column><p:spinner value="#{publicacionHistorialMB.publicacion.puestosVacantes}" min="1" max="999" size="3">
                                <f:validateDoubleRange minimum="1" maximum="999" />
                            </p:spinner>
                        </p:column>                     
                        <p:column styleClass="tdlavel"><h:outputText value="Genero:"/></p:column>
                        <p:column>
                            <p:selectOneMenu value="#{publicacionHistorialMB.publicacion.genero}">
                                <f:selectItem itemLabel="Seleccione Genero"/>
                                <f:selectItem itemValue="M" itemLabel="Masculino"/>
                                <f:selectItem itemValue="F" itemLabel="Femenino"/>
                            </p:selectOneMenu>                        
                        </p:column>                                        
                    </p:row>
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputLabel value="Edad Minima:"/></p:column>  
                        <p:column>
                            <p:spinner id="emin" value="#{publicacionHistorialMB.publicacion.edadInicio}" min="15" max="100" size="3">
                                <p:ajax update="emax"/>
                            </p:spinner>
                        </p:column>  
                        <p:column styleClass="tdlavel"><h:outputLabel value="Edad Maxima:"/></p:column>  
                        <p:column><p:spinner  id="emax" value="#{publicacionHistorialMB.publicacion.edadFin}" min="#{publicacionRegistroMB.publicacion.edadInicio}" max="100" size="3"/></p:column>  
                    </p:row>                
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputLabel value="Salario desde:*"/></p:column>  
                        <p:column>
                            <p:spinner id="smin" value="#{publicacionHistorialMB.publicacion.salarioDesde}" size="5" stepFactor="0.50" min="0">
                                <p:ajax update="smax"/>
                            </p:spinner>
                        </p:column>  
                        <p:column styleClass="tdlavel"><h:outputLabel value="Salario hasta:*"/></p:column>  
                        <p:column><p:spinner  id="smax" value="#{publicacionHistorialMB.publicacion.salarioHasta}" min="#{publicacionRegistroMB.publicacion.salarioDesde}" size="5" stepFactor="0.50"/></p:column>  
                    </p:row>                 
                </p:panelGrid>               
                <br/>
                <center><p:commandButton 
                        id="regPubl"
                        value="Registrar Publicación" 
                        icon="ui-icon-disk"  
                        update=":frmdetpubli:datatable"
                        action="#{publicacionHistorialMB.registrarPublicacion()}"
                        title="Registrar Publicación"/><br/>(Registrar almenos un requerimiento)</center>             

                <br/>
                <p:commandButton value="Nuevo Requerimiento" 
                                 icon="ui-icon-plus"
                                 update=":frmRequerimiento:dlgRequerimiento"
                                 oncomplete="dlgRequerimiento.show();"                                 
                                 actionListener="#{publicacionHistorialMB.prepararDescripcion()}"/>                
                <br/><br/>                    
                <p:dataTable id="datatable" style="font-size: 12px;" rowIndexVar="index"
                             var="ldetallePub" 
                             emptyMessage="No hay Requerimientos Para La Publicación" 
                             value="#{publicacionHistorialMB.publicacion.detallePublicacionList}" 
                             paginator="true" 
                             paginatorPosition="bottom"
                             rows="10"  
                             paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                             rowsPerPageTemplate="5,10,15">  
                    <p:column headerText="Requerimientos de Solicitud" filterBy="#{ldetallePub.descripcion}" filterMatchMode="contains" style="white-space:pre-line;">  
                        <h:outputText  value="#{ldetallePub.descripcion}" escape="false"/>  
                    </p:column>                                     
                    <p:column headerText="Opciones" style="text-align: center">
                        <p:commandButton oncomplete="dlgeliminar.show()"
                                         actionListener="#{publicacionHistorialMB.prepEliminarRq(ldetallePub)}"
                                         icon="ui-icon-circle-minus"/>                                                                                   
                    </p:column>
                </p:dataTable>                    
            </p:dialog>        
        </h:form>

        <h:form id="frmeliminar">                                   
            <p:dialog id="dlgeliminar" header="Confirmación de Operación" widgetVar="dlgeliminar" modal="true">                      
                <h:outputText value="En realidad desea Eliminar este Registro?  "/> 
                <p:commandButton value="Si" 
                                 update=":formUpPub:datatable" 
                                 actionListener="#{publicacionHistorialMB.eliminarRq()}" 
                                 oncomplete="dlgeliminar.hide()" 
                                 title="Si"/>  
                <p:commandButton value="No" 
                                 oncomplete="dlgeliminar.hide()" 
                                 title="No"/>       
            </p:dialog>
        </h:form>         



        <h:form id="frmRequerimiento">
            <p:dialog header="Nuevo Requerimiento" widgetVar="dlgRequerimiento" resizable="false" id="dlgRequerimiento">    
                <p:panelGrid id="pgRequerimiento" style="margin:0 auto;"> 
                    <p:row>
                        <p:column styleClass="tdlavel"><h:outputText value="Nuevo Requerimiento:*"/></p:column>
                        <p:column>
                            <p:inputTextarea id="nncatg" rows="3" cols="33" value="#{publicacionHistorialMB.detallePublicacion.descripcion}" required="true" requiredMessage="Requerimiento Obligatoria">
                                <p:ajax event="blur" update="mnncatg"/>
                            </p:inputTextarea>                            
                        </p:column>
                    </p:row>     
                    <p:row>
                        <p:column></p:column>
                        <p:column styleClass="tdmensaje"><h:message id="mnncatg" for="nncatg" /></p:column>
                    </p:row>                                          
                </p:panelGrid>    
                <br/>
                <p:separator/>
                <br/>
                <p:commandButton value="Agregar" 
                                 icon="ui-icon-disk"
                                 update=":formUpPub:datatable"
                                 actionListener="#{publicacionHistorialMB.DetallePublicacionNuevo()}" 
                                 oncomplete="if(!args.validationFailed) dlgRequerimiento.hide()"
                                 title="Registrar"/>  
                <p:commandButton value="Cancelar" 
                                 icon="ui-icon-circle-close"                                  
                                 oncomplete="dlgRequerimiento.hide()" 
                                 title="Cancelar"/>        
            </p:dialog>            
        </h:form> 
    </ui:define>    
</ui:composition>
